package main

import (
	"fmt"
)

// 判断用户是否存在，存在则返回用户已存在，不存在则添加新用户
func main() {
	userMap := make(map[string]int, 5)
	userMap["Tom"] = 90

	var (
		name          string
		score, case__ int
	)
	for {
		fmt.Println("请选择你需要的功能>>")
		fmt.Println("1.查询所有用户 2.添加用户 3.查询指定用户 4.修改用户信息 5.删除用户 6.退出程序>>")
		_, _ = fmt.Scan(&case__)
		switch {
		case case__ == 1:
			getAllUser(userMap)

		case case__ == 2:
			fmt.Print("请输入用户名>>")
			fmt.Scan(&name) // 捕获到空格结束
			_, exits := userMap[name]
			if exits {
				fmt.Println(name + "已存在,重新输入!!!")
				break
			}
			fmt.Print("请输入评分>>")
			fmt.Scan(&score)

			userMap[name] = score
			fmt.Printf("用户：%s 评分：%d 已成功录入\n\n", name, score)

		case case__ == 3:
			fmt.Print("请输入查询的用户名>>")
			fmt.Scan(&name)
			_, exits := userMap[name]
			if !exits {
				fmt.Println(name + "不存在！！！\n")
				break
			}
			fmt.Println(name, ":", userMap[name])

		case case__ == 4:
			fmt.Print("请输入用户名>>")
			fmt.Scan(&name) // 捕获到空格结束
			_, exits := userMap[name]
			if !exits {
				fmt.Println(name + "不存在,重新输入!!!")
				break
			}
			fmt.Print("请输入更新评分>>")
			fmt.Scan(&score)

			userMap[name] = score
			fmt.Printf("用户：%s 评分：%d 已成功更新\n\n", name, score)

		case case__ == 5:
			fmt.Print("请输入需要删除用户名>>")
			fmt.Scan(&name) // 捕获到空格结束
			_, exits := userMap[name]
			if !exits {
				fmt.Println(name + "不存在,重新输入!!!")
				break
			}
			delete(userMap, name)
			fmt.Println(name, "删除成功！！")

		case case__ == 6:
			fmt.Println("程序退出")
			return
		}
	}
}

func getAllUser(users map[string]int) {
	for k, v := range users {
		fmt.Printf("用户：%s 评分：%d \n", k, v)
	}
	fmt.Println()
}
